package com.ctshk.rpc.scenic.entity.app;

import com.baomidou.mybatisplus.annotation.TableName;
import com.ctshk.common.model.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@ApiModel(value = "景点门票基础数据", description = "景点门票基础数据")
@TableName("t_scenic_product")
public class ScenicProductApp extends BaseEntity implements Serializable {
    @ApiModelProperty(value = "ID")
    private Long id;
    @ApiModelProperty(value = "产品来源1 API 2 手动录入")
    private Integer sourceType;
    @ApiModelProperty(value = "所属城市")
    private Long cityId;
    @ApiModelProperty(value = "城市名称")
    private String cityName;
    @ApiModelProperty(value = "景点ID")
    private String scenicId;
    @ApiModelProperty(value = "产品名称")
    private String name;
    @ApiModelProperty(value = "供应商ID")
    private Long supplierId;
    @ApiModelProperty(value = "供应商名称")
    private String supplierName;
    @ApiModelProperty(value = "负责人ID")
    private Long chargeUserId;
    @ApiModelProperty(value = "负责人名称")
    private String chargeUser;
    @ApiModelProperty(value = "适用人群ID")
    private Long intendedUserId;
    @ApiModelProperty(value = "适用人群")
    private String intendedUser;
    @ApiModelProperty(value = "使用有效期类型 1 固定天数 2 指定日期区间")
    private Integer vaildType;
    @ApiModelProperty(value = "几日有效")
    private Double vaildDay;
    @ApiModelProperty(value = "有效期起始")
    private LocalDateTime vaildDayBegin;
    @ApiModelProperty(value = "有效期截至")
    private LocalDateTime vaildDayEnd;
    @ApiModelProperty(value = "是否允许自由行打包 1 允许 2 不允许 3 只限打包")
    private Integer allowPackage;
    @ApiModelProperty(value = "门票主题")
    private String themeJson;
    @ApiModelProperty(value = "产品图片JSON")
    private String photosJson;
    @ApiModelProperty(value = "封面图地址")
    private String coverImage;
    @ApiModelProperty(value = "产品介绍")
    private String productIntroduces;
    @ApiModelProperty(value = "入园须知")
    private String admissionNotes;
    @ApiModelProperty(value = "售卖状态")
    private Integer saleStatus;
    @ApiModelProperty(value = "审批状态")
    private Integer approvalStatus;
    @ApiModelProperty(value = "状态")
    private Integer status;
    @ApiModelProperty(value = "开售时间类型 1 立即开售 2 定时开售")
    private Integer startSaleTimeType;
    @ApiModelProperty(value = "开售时间起始")
    private LocalDateTime startSaleTimeBegin;
    @ApiModelProperty(value = "开售时间结束")
    private LocalDateTime startSaleTimeEnd;
    @ApiModelProperty(value = "是否需要二次确认")
    private Integer needDoubleCheck;
    @ApiModelProperty(value = "预订退改须知")
    private String customerNotice;
    @ApiModelProperty(value = "预订后是否可退")
    private Integer allowRefund;
    @ApiModelProperty(value = "预订服务费类型")
    private Integer reserveChargeType;
    @ApiModelProperty(value = "预订服务费")
    private BigDecimal reserveCharge;
    @ApiModelProperty(value = "中旅退改费用类型")
    private Integer ctsChargeType;
    @ApiModelProperty(value = "中旅退改服务费")
    private BigDecimal ctsCharge;
    @ApiModelProperty(value = "是否需要填写证件信息")
    private Integer needInfo;
    @ApiModelProperty(value = "1电子票/2纸质票")
    private Integer ticketType;
    @ApiModelProperty(value = "1电邮/2短信/3实体票/4atb/5换票单")
    private String fetchWay;
    @ApiModelProperty(value = "使用方式")
    private Integer usageMode;
    @ApiModelProperty(value = "是否推荐")
    private Integer isRecommend;
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime gmtCreate;
    @ApiModelProperty(value = "更新时间")
    private LocalDateTime gmtModified;
    @ApiModelProperty(value = "创建人")
    private Long createId;
    @ApiModelProperty(value = "修改人")
    private Long modifiedId;
    @ApiModelProperty(value = "删除标识")
    private Integer isDeleted;
    @ApiModelProperty(value = "预订确认: 1 立即确认  2 二次确认")
    private Integer bookConfirm;
    @ApiModelProperty(value = "取消政策;  1 限时取消  2 不退不改")
    private Integer cancelPolicy;
    @ApiModelProperty(value = "产品类型")
    private String productType;
    @ApiModelProperty(value = "产品code")
    private String productCode;
    @ApiModelProperty(value = "产品类型名称")
    private String productTypeName;
}
